package com.huaxonline.boot.web.config;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.ArrayList;
import java.util.List;

/**
 * 跨域配置属性类，与配置文件绑定
 */
@Getter
@Setter
@ConfigurationProperties(prefix = "huaxonline.cors") // 绑定配置前缀 cors
public class CorsProperties {

    // 跨域功能开关（默认关闭）
    private boolean enabled = false;

    // 允许的源（默认允许所有，生产环境建议精确配置）
    private List<String> allowedOrigins = new ArrayList<String>() {{
        add("*");
    }};

    // 允许的请求方法（默认支持常见方法）
    private List<String> allowedMethods = new ArrayList<String>() {{
        add("GET");
        add("POST");
        add("PUT");
        add("DELETE");
        add("OPTIONS");
    }};

    // 允许的请求头（默认允许所有）
    private List<String> allowedHeaders = new ArrayList<String>() {{
        add("*");
    }};

    // 是否允许携带凭据（默认false，若为true则allowedOrigins不能为*）
    private boolean allowCredentials = false;

    // 预检请求缓存时间（秒，默认1小时）
    private long maxAge = 3600;

    // 适用的路径模式（默认所有路径）
    private String pathPatterns = "/**";


}
    